/*
 * Copyright(c) 2018-2018, YuanYue Group, Inc. All rights reserved.
 *
 * This software is the confidential and proprietary information of YuanYue Group, Inc.
 * You shall not disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into with YuanYue Group.
 */
package net.wsfcp.android.greendao.utils;

import android.content.Context;
import android.util.Log;
import android.widget.Toast;

import net.wsfcp.android.base.BaseApplication;
import net.wsfcp.android.bean.resultbean.UserBean;
import net.wsfcp.android.greendao.DaoManager;
import net.wsfcp.android.greendao.gen.UserBeanDao;

import java.util.List;

/**
 * UserBeanUtil.java是全网覆盖平台的。
 *
 * @author Shaoboyang
 * @version $Id: UserBeanUtil.java, v 0.1 2018-12-26 10:17 Shaoboyang Exp $$
 */
public class UserBeanUtil {
    private static final String TAG = UserBeanUtil.class.getSimpleName();
    private DaoManager mManager;

    public UserBeanUtil(Context context) {
        mManager = DaoManager.getInstance();
        mManager.init(context);
    }

    /**
     * 完成meizi记录的插入，如果表未创建，先创建Meizi表
     *
     * @param user
     * @return
     */
    public boolean insertUser(UserBean user) {
        boolean flag = false;
        flag = mManager.getDaoSession().getUserBeanDao().insert(user) == -1 ? false : true;
        Log.i(TAG, "insert Meizi :" + flag + "-->" + user.toString());
        return flag;
    }

//    /**
//     * 插入多条数据，在子线程操作
//     * @param meiziList
//     * @return
//     */
//    public boolean insertMultMeizi(final List<Meizi> meiziList) {
//        boolean flag = false;
//        try {
//            mManager.getDaoSession().runInTx(new Runnable() {
//                @Override
//                public void run() {
//                    for (Meizi meizi : meiziList) {
//                        mManager.getDaoSession().insertOrReplace(meizi);
//                    }
//                }
//            });
//            flag = true;
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return flag;
//    }
//

    /**
     * 修改一条数据
     *
     * @param userBean
     * @return
     */
    public boolean updateUser(UserBean userBean) {
        boolean flag = false;
        try {
            mManager.getDaoSession().update(userBean);
            flag = true;
        } catch (Exception e) {
            e.printStackTrace();

            Log.e("数据库更新", "数据库更新失败");

            try {
                mManager.getDaoSession().insert(userBean);//添加一个
            } catch (Exception i) {
                Log.e("数据库新增", "数据库新增失败");

            }

//            Toast.makeText(BaseApplication.getContext(), "数据库保存失败:" + e.getMessage(), Toast.LENGTH_LONG).show();
        }

        return flag;
    }


    public UserBean getUserInfo(String userid) {
        return mManager.getDaoSession().load(UserBean.class, userid);

    }


//
//    /**
//     * 删除单条记录
//     * @param meizi
//     * @return
//     */
//    public boolean deleteMeizi(Meizi meizi){
//        boolean flag = false;
//        try {
//            //按照id删除
//            mManager.getDaoSession().delete(meizi);
//            flag = true;
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//        return flag;
//    }
//
//    /**
//     * 删除所有记录
//     * @return
//     */
//    public boolean deleteAll(){
//        boolean flag = false;
//        try {
//            //按照id删除
//            mManager.getDaoSession().deleteAll(Meizi.class);
//            flag = true;
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//        return flag;
//    }
//
//    /**
//     * 查询所有记录
//     * @return
//     */
//    public List<Meizi> queryAllMeizi(){
//        return mManager.getDaoSession().loadAll(Meizi.class);
//    }
//
//    /**
//     * 根据主键id查询记录
//     * @param key
//     * @return
//     */
//    public Meizi queryMeiziById(long key){
//        return mManager.getDaoSession().load(Meizi.class, key);
//    }
//
//    /**
//     * 使用native sql进行查询操作
//     */
//    public List<Meizi> queryMeiziByNativeSql(String sql, String[] conditions){
//        return mManager.getDaoSession().queryRaw(Meizi.class, sql, conditions);
//    }
//
//    /**
//     * 使用queryBuilder进行查询
//     * @return
//     */
//    public List<Meizi> queryMeiziByQueryBuilder(long id){
//        QueryBuilder<Meizi> queryBuilder = mManager.getDaoSession().queryBuilder(Meizi.class);
//        return queryBuilder.where(MeiziDao.Properties._id.eq(id)).list();
//    }

}